Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

662
Visualizações
¿Cómo resuelvo el error: "No se deben citar los nombres de los argumentos" en Terraform?

Estoy ejecutando Terraform 0.12.24 localmente

Estoy tratando de implementar una integración de API Gateway con Lambda

Estoy intentando habilitar AWS API GW CORS con Terraform.

Tengo el siguiente recurso para la respuesta del método OPTIONS:

 resource "aws_api_gateway_method_response" "options_200" { rest_api_id = aws_api_gateway_rest_api.scout-approve-api-gateway.id resource_id = aws_api_gateway_resource.proxy.id http_method = aws_api_gateway_method.options_method.http_method status_code = "200" response_models { "application/json" = "Empty" } response_parameters { "method.response.header.Access-Control-Allow-Headers" = true, "method.response.header.Access-Control-Allow-Methods" = true, "method.response.header.Access-Control-Allow-Origin" = true } depends_on = [aws_api_gateway_method.options_method] }

Y estoy obteniendo:

 Error: Invalid argument name on main.tf line 48, in resource "aws_api_gateway_method_response" "options_200": 48: "application/json" = "Empty" Argument names must not be quoted.

¿Lo que da?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Este es en realidad el malentendido del analizador donde está el error. En realidad, se queja de que está tratando de leer los modelos de response_models y los parámetros de response_parameters como bloques en lugar de atributos. Hay más discusión sobre esto en la documentación 0.12 .

La principal diferencia entre un atributo de mapa y un bloque anidado es que un atributo de mapa generalmente tendrá claves definidas por el usuario, como vemos en el ejemplo de etiquetas anterior, mientras que un bloque anidado siempre tiene un conjunto fijo de argumentos admitidos definidos por el tipo de recurso. esquema, que Terraform validará.

En la versión 0.11, podría usar indistintamente la sintaxis de bloque (solo llaves como response_parameters { ... } ) para los atributos, pero en la versión 0.12 es más estricta con respecto a los tipos, por lo que ya no es posible. El código en la publicación de Medium a la que se vinculó como ejemplo de trabajo es un código 0.11 y no es válido en 0.12. Si observa detenidamente el código de GitHub que también vinculó , puede ver que usa la sintaxis de atributo en lugar de la sintaxis de bloque, por lo que es válido.

Cambiar a usar la sintaxis de atributo agregando un = hará que esto funcione como se esperaba:

 resource "aws_api_gateway_method_response" "options_200" { rest_api_id = aws_api_gateway_rest_api.scout-approve-api-gateway.id resource_id = aws_api_gateway_resource.proxy.id http_method = aws_api_gateway_method.options_method.http_method status_code = "200" response_models = { "application/json" = "Empty" } response_parameters = { "method.response.header.Access-Control-Allow-Headers" = true, "method.response.header.Access-Control-Allow-Methods" = true, "method.response.header.Access-Control-Allow-Origin" = true } depends_on = [aws_api_gateway_method.options_method] }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda